# -*- makefile -*-
#
# arch/x86-64/MCONFIG
#
# Special rules for this architecture.  Note that this is actually
# included from the main Makefile, and that pathnames should be
# accordingly.
#
# Blatantly copied and modified from i386 version by Mats Petersson, AMD.
#

#
# NOTE: -fno-asynchronous-unwind-tables produce significantly smaller
# binaries (20% smaller), but makes the code completely useless for
# debugging using gdb.
#
KLIBCARCHREQFLAGS = -m64
ifeq ($(DEBUG),y)
KLIBCOPTFLAGS     += -g -Os -fomit-frame-pointer \
		-falign-functions=1 -falign-jumps=1 -falign-loops=1
else
KLIBCOPTFLAGS     += -Os -fno-asynchronous-unwind-tables -fomit-frame-pointer \
		-falign-functions=1 -falign-jumps=1 -falign-loops=1
endif
KLIBCBITSIZE      = 64
KLIBCLDFLAGS      = -m elf_x86_64

# Extra linkflags when building the shared version of the library
# This address needs to be reachable using normal inter-module
# calls, and work on the memory models for this architecture
# 2 MB - normal binaries start at 4 MB
#
# Recent binutils use max-page-size=0x200000 by default, which pushes
# klibc.so data over the 4 MB mark, overlapping the executable.
# Revert to the old max-page-size=0x100000 value.
KLIBCSHAREDFLAGS     = -Ttext 0x00200200 -z max-page-size=0x100000

# Asm includes for x86_64 are in the merged x86 tree
KLIBCARCHINCFLAGS = -I$(KLIBCKERNELOBJ)/arch/x86/include
